#ifndef CMENUSTATE_H
#define CMENUSTATE_H

#include "cstate.h"
#include <QGLWidget>
#include <qevent.h>


struct TMLabel {
    TMLabel() {}
    TMLabel( QString text, int x, int y, QFont font, int action )
    {
        set( text, x, y, font, action );
    }
    void set( QString text, int x, int y, QFont font, int action )
    {
        this->text = text; this->x = x; this->y = y; this->action = action;
        QFontMetrics f( font );
        width = f.width( text ); height = f.height();
        x2 = x + width; y2 = y - height;
    }

    QString text;
    int x, y;
    int width, height;
    int x2, y2;
    int action;
};

class CMenuState : public CState
{
public:

    void draw(QGLWidget * gl);
    void initGL(QGLWidget * gl);
    void update();

    void enterState();
    void leaveState();

    int  doLogic(QList<int> Kl);

    static CMenuState * instance() { return &st_menu; } // grąžinam adresą...

    void init(CStateManager * p) { p_stMngr = p; initVars(); }

protected:
    CMenuState() {};
    void initVars();

private:
    static CMenuState st_menu;

    QFont font;
    QList<TMLabel> myg[4];
    QList<TMLabel> txt[4];
    int menuState;
    int stateSelection[4]; // stadijų mygtukų pasirinkimo indeksas
    GLuint texture[1];     // Tekstūrų masyvas
};

#endif // CMENUSTATE_H
